package com.iad.entity;
import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.GeneratedValue;
import javax.persistence.Transient;


import static javax.persistence.GenerationType.IDENTITY;

@Entity
@Table(name = "site")
public class Site implements java.io.Serializable {
  private Long id;
  private String name;
  private String bandCity;
  private String bandState;
  private String password;
  private String email;
  private String firstName;
  private String lastName;
  private Long ownerId;
  private String imagePath;
  private Boolean active;
  private Long currentPlaylistId;
  private String url;
  private String pathLabel;
  private List playlists;
  private List reviews;
  private List videos;
  private Boolean admin;


  public Site() {
  }

  public Site(Long id, String name, String password, Boolean admin) {
    this.id = id;
    this.name = name;
    this.password = password;
    this.admin = admin;
  }

  @Id
  @GeneratedValue(strategy = IDENTITY)
  @Column(name = "id", unique = true, nullable = false)
  public Long getId() {
    return this.id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  @Column(name = "name", nullable = false, length = 80)
  public String getName() {
    return this.name;
  }
  public void setName(String name) {
    this.name = name;
  }
  
  @Column(name = "band_city", nullable = false, length = 80)
  public String getBandCity() {
    return this.bandCity;
  }
  public void setBandCity(String bandCity) {
    this.bandCity = bandCity;
  }
  
  @Column(name = "band_state", nullable = false, length = 80)
  public String getBandState() {
    return this.bandState;
  }
  public void setBandState(String bandState) {
    this.bandState = bandState;
  }
  
  @Column(name = "password", nullable = false, length = 80)
  public String getPassword() {
    return this.password;
  }
  public void setPassword(String password) {
    this.password = password;
  }
  
  @Column(name = "email", nullable = false, length = 80)
  public String getEmail() {
    return this.email;
  }
  public void setEmail(String email) {
    this.email = email;
  }
  
  @Column(name = "first_name", nullable = false, length = 80)
  public String getFirstName() {
    return this.firstName;
  }
  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }
  
  @Column(name = "Last_name", nullable = false, length = 80)
  public String getLastName() {
    return this.lastName;
  }
  public void setLastName(String lastName) {
    this.lastName = lastName;
  }
  
 @Column(name = "owner_id", unique = false, nullable = true)
  public Long getOwnerId() {
    return this.ownerId;
  }

  public void setOwnerId(Long ownerId) {
    this.ownerId = ownerId;
  }
  
  @Column(name = "image_path", nullable = true, length = 80)
  public String getImagePath() {
    return this.imagePath;
  }

  public void setImagePath(String imagePath) {
    this.imagePath = imagePath;
  }
  
  @Column(name = "active", unique = false, nullable = false)
  public Boolean getActive() {
    return active;
  }

  public void setActive(Boolean active) {
    this.active = active;
  }
  
  @Column(name = "current_playlist_id", unique = false, nullable = false)
  public Long getCurrentPlaylistId() {
    return this.currentPlaylistId;
  }

  public void setCurrentPlaylistId(Long currentPlaylistId) {
    this.currentPlaylistId = currentPlaylistId;
  }

  @Transient
  public List getPlaylists() {
    return playlists;
  }

  public void setPlaylists(List playlists) {
    this.playlists = playlists;
  }
  
  
  @Transient
  public List getReviews() {
    return reviews;
  }

  public void setReviews(List reviews) {
    this.reviews = reviews;
  }

  @Transient
  public List getVideos() {
    return videos;
  }

  public void setVideos(List videos) {
    this.videos = videos;
  }
  
  @Column(name = "url", nullable = true, length = 80)
  public String getUrl() {
    return this.url;
  }

  public void setUrl(String url) {
    this.url = url;
  }
  
  @Column(name = "path_label", nullable = true, length = 80)
  public String getPathLabel() {
    return this.pathLabel;
  }

  public void setPathLabel(String pathLabel) {
    this.pathLabel = pathLabel;
  }
  
  @Transient
  public Boolean getAdmin() {
    return admin;
  }

  public void setAdmin(Boolean admin) {
    this.admin = admin;
  }
  
  

}
